/*******************************************************************************

 MyDb.hpp

 Copyright © 2005-2009 Oracle. All rights reserved.

 See the file BerkeleyDBLicense.txt for redistribution information.

*******************************************************************************/

#ifndef MYDB_H
#define MYDB_H

#include <string>
#include <db_cxx.h>

class MyDb
{
public:
	// Constructor requires a path to the database,
	// and a database name.
	MyDb(std::string &path, std::string &dbName,
	     bool isSecondary = false);

	// Our destructor just calls our private close method.
	~MyDb() {
		close();
	}

	inline Db &getDb() {
		return db_;
	}

private:
	Db db_;
	std::string dbFileName_;
	u_int32_t cFlags_;

	// Make sure the default constructor is private
	// We don't want it used.
	MyDb() : db_(NULL, 0) {}

	// We put our database close activity here.
	// This is called from our destructor. In
	// a more complicated example, we might want
	// to make this method public, but a private
	// method is more appropriate for this example.
	void close();
};
#endif
